/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package EntityState;

import java.io.Serializable;
import java.util.List;

/**
 *
 * @author James
 */
public class OutletState implements Serializable {
    private long    id;
    private String  name;
    private String  address1;
    private String  address2;
    private String  postalCode;
    private String  countryCode;
    private String  phone;
    private String  country;
    private String  province;
    private String  city;
    private String  timezone;
    private String  businessEmail;
    private int     reservationNoShowFee; // dollar * 100 + cents ($2.5 = 250)
    private int     reservationCancelFee; // postive: dollar * 100 + cents ($2.5 = 250), negative: percentage of the items paid
    private int     reservableMinimumLength;  // postive: number of 30-minute slots, negative: number of days, 0: reservation not allowed
    private int     reservableMaximumLength; // postive: number of 30-minute slots, negative: number of days, 0: reservation not allowed
    private int     reservationMinimumLeadTime; // postive: number of 30-minute slots, negative: number of days
    private int     reservationMaximumLeadTime; // postive: number of 30-minute slots, negative: number of days
    private boolean active;
    private boolean deleted;
    private FileState                      layout;
    private PartnerState                   thePartner;
    private List<ReservableUnitState>      listOfReservableUnits;
    private List<ItemCategoryState>        sellingItemCategories;
    private List<CustomerTransactionState> listOfTransactions; 
    private List<FileState>                listOfPictures;

    public OutletState(long id, String name) {
        this.id     = id;
        this.name   = name;
    }
    
    public OutletState(long id, String name, boolean active) {
        this.id     = id;
        this.name   = name;
        this.active = active;
    }
    
    public OutletState(long id, String name, String address1, String address2, String postalCode, String countryCode, String phone, String country, String province, String city, String businessEmail, FileState layout, List<FileState> listOfPictures) {
        this.id             = id;
        this.name           = name;
        this.address1       = address1;
        this.address2       = address2;
        this.postalCode     = postalCode;
        this.countryCode    = countryCode;
        this.phone          = phone;
        this.country        = country;
        this.province       = province;
        this.city           = city;
        this.businessEmail  = businessEmail;
        this.layout         = layout;
        this.listOfPictures = listOfPictures;
    }
    
    public OutletState(long id, String name, String address1, String address2, String postalCode, String countryCode, String phone, String country, String province, String city, String timezone, String businessEmail, int reservationNoShowFee, int reservationCancelFee, int reservableMinimumLength, int reservableMaximumLength, int reservationMinimumLeadTime, int reservationMaximumLeadTime, FileState layout, List<FileState> listOfPictures) {
        this.id            = id;
        this.name          = name;
        this.address1      = address1;
        this.address2      = address2;
        this.postalCode    = postalCode;
        this.countryCode   = countryCode;
        this.phone         = phone;
        this.country       = country;
        this.province      = province;
        this.city          = city;
        this.timezone      = timezone;
        this.businessEmail = businessEmail;
        this.reservationNoShowFee       = reservationNoShowFee;
        this.reservationCancelFee       = reservationCancelFee;
        this.reservableMinimumLength    = reservableMinimumLength;
        this.reservableMaximumLength    = reservableMaximumLength;
        this.reservationMinimumLeadTime = reservationMinimumLeadTime;
        this.reservationMaximumLeadTime = reservationMaximumLeadTime;
        this.layout                     = layout;
        this.listOfPictures             = listOfPictures;
    }

    public OutletState(long id, String name, String address1, String address2, String postalCode, String countryCode, String phone, String country, String province, String city, String timezone, String businessEmail, int reservationNoShowFee, int reservationCancelFee, int reservableMinimumLength, int reservableMaximumLength, int reservationMinimumLeadTime, int reservationMaximumLeadTime, boolean active, FileState layout, List<FileState> listOfPictures) {
        this.id            = id;
        this.name          = name;
        this.address1      = address1;
        this.address2      = address2;
        this.postalCode    = postalCode;
        this.countryCode   = countryCode;
        this.phone         = phone;
        this.country       = country;
        this.province      = province;
        this.city          = city;
        this.timezone      = timezone;
        this.businessEmail = businessEmail;
        this.reservationNoShowFee       = reservationNoShowFee;
        this.reservationCancelFee       = reservationCancelFee;
        this.reservableMinimumLength    = reservableMinimumLength;
        this.reservableMaximumLength    = reservableMaximumLength;
        this.reservationMinimumLeadTime = reservationMinimumLeadTime;
        this.reservationMaximumLeadTime = reservationMaximumLeadTime;
        this.active                     = active;
        this.layout                     = layout;
        this.listOfPictures             = listOfPictures;
    }

    public OutletState(Long id, String name, String address1, String address2, String postalCode, String countryCode, String phone, String country, String province, String city, String timezone, String businessEmail, int reservationNoShowFee, int reservationCancelFee, int reservableMinimumLength, int reservableMaximumLength, int reservationMinimumLeadTime, int reservationMaximumLeadTime, FileState layout, PartnerState thePartner, List<ReservableUnitState> listOfReservableUnits, List<ItemCategoryState> sellingItemCategories, List<CustomerTransactionState> listOfTransactions, List<FileState> listOfPictures) {
        this.id                         = id;
        this.name                       = name;
        this.address1                   = address1;
        this.address2                   = address2;
        this.postalCode                 = postalCode;
        this.countryCode                = countryCode;
        this.phone                      = phone;
        this.country                    = country;
        this.province                   = province;
        this.city                       = city;
        this.timezone                   = timezone;
        this.businessEmail              = businessEmail;
        this.reservationNoShowFee       = reservationNoShowFee;
        this.reservationCancelFee       = reservationCancelFee;
        this.reservableMinimumLength    = reservableMinimumLength;
        this.reservableMaximumLength    = reservableMaximumLength;
        this.reservationMinimumLeadTime = reservationMinimumLeadTime;
        this.reservationMaximumLeadTime = reservationMaximumLeadTime;
        this.layout                     = layout;
        this.thePartner                 = thePartner;
        this.listOfReservableUnits      = listOfReservableUnits;
        this.sellingItemCategories      = sellingItemCategories;
        this.listOfTransactions         = listOfTransactions;
        this.listOfPictures             = listOfPictures;
    }
    
    //Getters and Setters
    public String getAddress1() {
        return address1;
    }

    public void setAddress1(String address1) {
        this.address1 = address1;
    }

    public String getAddress2() {
        return address2;
    }

    public void setAddress2(String address2) {
        this.address2 = address2;
    }

    public String getBusinessEmail() {
        return businessEmail;
    }

    public void setBusinessEmail(String businessEmail) {
        this.businessEmail = businessEmail;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getTimezone() {
        return timezone;
    }

    public void setTimezone(String timezone) {
        this.timezone = timezone;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    public String getCountryCode() {
        return countryCode;
    }

    public void setCountryCode(String countryCode) {
        this.countryCode = countryCode;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public boolean isActive() {
        return active;
    }

    public void setActive(boolean active) {
        this.active = active;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    public FileState getLayout() {
        return layout;
    }

    public void setLayout(FileState layout) {
        this.layout = layout;
    }

    public List<FileState> getListOfPictures() {
        return listOfPictures;
    }

    public void setListOfPictures(List<FileState> listOfPictures) {
        this.listOfPictures = listOfPictures;
    }

    public List<ReservableUnitState> getListOfReservableUnits() {
        return listOfReservableUnits;
    }

    public void setListOfReservableUnits(List<ReservableUnitState> listOfReservableUnits) {
        this.listOfReservableUnits = listOfReservableUnits;
    }

    public List<CustomerTransactionState> getListOfTransactions() {
        return listOfTransactions;
    }

    public void setListOfTransactions(List<CustomerTransactionState> listOfTransactions) {
        this.listOfTransactions = listOfTransactions;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPostalCode() {
        return postalCode;
    }

    public void setPostalCode(String postalCode) {
        this.postalCode = postalCode;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public int getReservableMinimumLength() {
        return reservableMinimumLength;
    }

    public void setReservableMinimumLength(int reservableMinimumLength) {
        this.reservableMinimumLength = reservableMinimumLength;
    }

    public int getReservableMaximumLength() {
        return reservableMaximumLength;
    }

    public void setReservableMaximumLength(int reservableMaximumLength) {
        this.reservableMaximumLength = reservableMaximumLength;
    }

    public int getReservationCancelFee() {
        return reservationCancelFee;
    }

    public void setReservationCancelFee(int reservationCancelFee) {
        this.reservationCancelFee = reservationCancelFee;
    }

    public int getReservationMaximumLeadTime() {
        return reservationMaximumLeadTime;
    }

    public void setReservationMaximumLeadTime(int reservationMaximumLeadTime) {
        this.reservationMaximumLeadTime = reservationMaximumLeadTime;
    }

    public int getReservationMinimumLeadTime() {
        return reservationMinimumLeadTime;
    }

    public void setReservationMinimumLeadTime(int reservationMinimumLeadTime) {
        this.reservationMinimumLeadTime = reservationMinimumLeadTime;
    }

    public int getReservationNoShowFee() {
        return reservationNoShowFee;
    }

    public void setReservationNoShowFee(int reservationNoShowFee) {
        this.reservationNoShowFee = reservationNoShowFee;
    }

    public List<ItemCategoryState> getSellingItemCategories() {
        return sellingItemCategories;
    }

    public void setSellingItemCategories(List<ItemCategoryState> sellingItemCategories) {
        this.sellingItemCategories = sellingItemCategories;
    }

    public PartnerState getPartner() {
        return thePartner;
    }

    public void setPartner(PartnerState thePartner) {
        this.thePartner = thePartner;
    }
}
